Video surveillance is currently a fast-growing market tending to become increasingly widespread for ubiquitous applications. It can be used today in numerous areas such as crime prevention, private and public areas for security purposes, abnormal events detection, traffic monitoring, customer behaviour, or general data gathering.
Video surveillance systems often comprise a huge number of network cameras that can be made by different manufacturers and that can be of different types. Each network camera typically comprises video stream encoders that make it possible to transmit encoded video stream over a communication network, for example to servers, to be recorded and displayed in real-time to human operators or analysed for objection recognition.
Configuring a network camera is not easy. In particular, setting the video stream encoders of the network camera can be complex for users that are not familiar with each type of network camera. Moreover, the setting of video stream cameras may depend on the tasks to be performed.
Such a complexity results from the great number of parameters that may for example comprise a video resolution, a video codec, a bitrate control, a frame rate, a video quality, and a Group of Pictures (GoP). It also results from the technical nature of these parameters and from their impacts that are not directly known and visible to the one setting the parameters, for example in terms of image quality, network bandwidth, and resource consumption.
To set the parameters properly, it is needed to take into account the usage of the stream(s) generated by a network camera to adapt the configuration of its video encoder(s). Typical usages of video streams in a video surveillance system are live viewing, recording (for the retrieval and viewing of video such as for a post-event investigation) and Video Content Analytics (VCA) which is based on video analysis to perform dedicated tasks such as face detection or recognition, people tracking, or license plate reading. Each usage requires a given (minimum) quality of the stream generated by a video encoder.
Moreover, while the format of the outputs of the encoders generally conforms to a standard, the manufacturers implement their own encoders, resulting in manufacturer-dependent configuration. It is also to be noted that each manufacturer continuously improves its encoders to improve its performance, resulting in variation of configuration. As a consequence, an administrator or the one who is in charge of configuring the encoders doesn't know which encoder is embedded in a given camera and thus cannot make an a priori determination of an optimal configuration. This means that a dedicated configuration needs to be learned for each manufacturer and model. Moreover, the list of settable encoding parameters is not necessarily the same between two different cameras and in particular, a same encoding parameter may have a unit and/or a scale different between two cameras.
Consequently, the administrator or the one who is in charge of configuring the cameras needs to configure each camera individually, according to its manufacturer, its model, and the task to be carried out. The problem is complex for a given network and becomes even difficult and quite unrealistic in large scale video surveillance systems, in terms of complexity and worktime.